<?php

class User extends AppModel {

    var $name = 'User';
    var $validate = array(
          'user_password' => array(
            'texto_use_password' => array(
                'rule' => array('alphaNumeric'),
                'message' => 'alphaNumeric',
                'required' => true,
            ),
            'texto_min' => array(
                'rule' => array('minLength', '6'),
                'message' => '6 min',
                'required' => true,
            ),        
//            'use_matchPasswords' => array(
//                'rule' => array('matchPasswords', 'user_password_confirm'),
//                'on' => 'update',
//                'message' => 'Las contraseñas tienen que coincidir'
//            ),
        ),



    );
	
function validateLogin($data) 
    { 
        $user = $this->find(array('username' => $data['username'])); 
        if(empty($user) == false) 
            return $user['User'];
        return false;
    }
	
    function matchPasswords($data, $fieldTwo){
        $this->log('matchPasswords ');
        if (strcmp($data['user_password'], $this->data[$this->alias][$fieldTwo])<>'0'){
            $this->invalidate($fieldTwo, 'Las contraseсas tienen que coincidir');
            $this->log('return false');
            $result = false;
        } else {
            $this->log('return true');
            $result = true;
        }
        return $result;
     
    
    }
    
    function RandomString($length=10,$uc=TRUE,$n=TRUE,$sc=FALSE)
{
	$source = 'abcdefghijklmnopqrstuvwxyz';
	if($uc==1) $source .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
	if($n==1) $source .= '1234567890';
	if($sc==1) $source .= '|@#~$%()=^*+[]{}-_';
	if($length>0){
		$rstr = "";
		$source = str_split($source,1);
		for($i=1; $i<=$length; $i++){
			mt_srand((double)microtime() * 1000000);
			$num = mt_rand(1,count($source));
			$rstr .= $source[$num-1];
		}

	}
	return $rstr;
}
    
	var $belongsTo = array(
		'Profiles' => array(
			'className' => 'Profiles',
			'foreignKey' => 'Profiles_id',
			'conditions' => '',
			'fields' => '',
			'order' => ''
		)
	);
        
//Le decimos que se comporte como ACL.
var $actsAs = array('Acl' => array('requester'));
 
/*Función creada para el AclBehavior; con esto se le dice a CakePHP que cada vez que se cree un 'usuario' 
o 'perfil', también se agregue un registro en la tabla aros(es decir, maneja las relaciones padre-hijo)*/
    function parentNode() {
            return null;
    }
    
    function checkAccess()
	{
            $user = $this->User;      
               if($user['profiles_id']=='0'){
                     return true;
                }else{
                    return false;
                }

        }

}

?>